with Ada.Containers.Vectors;

generic
   type T is private;

package Generic_Pile is
   Erreur_Pile_Vide : exception --levée en cas de demande de dépilage sur pile vide

     type Pile is tagged private;
     procedure Empiler(P : in out Pile; V : T);
     procedure Depiler(P : in out Pile; V : out T);
     procedure Regarder(P : in out Pile; V : out T);
     function Est_Vide(P : Pile) return Boolean;
private

   function "="(X,Y :T) return Boolean ;

   package Pack_Pile is new Ada.Containers.Vectors(Natural,T,"=");
   type Pile is new Pack_Pile.Vector with
     null record;
end Generic_Pile;
